package com.example.demo.service;

import com.example.demo.alipay.config.Configs;
import com.example.demo.alipay.service.AlipayTradeService;
import com.example.demo.alipay.service.impl.AlipayTradeServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
@Slf4j
public class TradeServiceImpl implements TradeService{
//   支付宝当面付2.0服务
    private  static AlipayTradeService tradeService;
    @PostConstruct
//    PostConstruct该注解被用来修饰一个非静态的void（）方法。
//    被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行，并且只会被服务器执行一次。
//    PostConstruct在构造函数之后执行，init（）方法之前执行。
    private void init(){
        /** 一定要在创建AlipayTradeService之前调用Configs.init()设置默认参数
         *  Configs会读取classpath下的zfbinfo.properties文件配置信息，如果找不到该文件则确认该文件是否在classpath目录
         */
        Configs.init("zfbinfo.properties");
        /** 使用Configs提供的默认参数
         *  AlipayTradeService可以使用单例或者为静态成员对象，不需要反复new
         */
        tradeService=new AlipayTradeServiceImpl.ClientBuilder().build();
    }

}
